package com.nimitz.module.demo.service.impl;

import com.nimitz.module.demo.domain.DemUser;
import com.nimitz.module.demo.mapper.DemUserDtoMapper;
import com.nimitz.module.demo.service.IDemUserDtoService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

@Service
public class DemoUserDtoServiceImpl implements IDemUserDtoService {
    @Resource
    private DemUserDtoMapper userDtoMapper;

    /**
     * 新增用戶
     *
     * @param user 用戶
     * @return 结果
     */
    @Override
    @Transactional
    public int insertUser(DemUser user) {
        // 新增用户
        int rows = userDtoMapper.insertUser(user);
        // 新增用户岗位关联
        this.insertUserPost(user);
        // 新增用户与角色管理
        this.insertUserRole(user);
        return rows;
    }

    /**
     * 根据用户ID删除用户
     *
     * @param userId 用户ID
     * @return 结果
     */
    @Override
    public int deleteUserById(Integer userId) {
        return userDtoMapper.deleteUserById(userId);
    }

    /**
     * 批量删除用戶
     *
     * @param userIds 用戶ID集合
     * @return 结果
     */
    @Override
    public int deleteUserByIds(Integer[] userIds) {
        return userDtoMapper.deleteUserByIds(userIds);
    }

    /**
     * 修改用戶
     *
     * @param user 用戶
     * @return 结果
     */
    @Override
    public int updateUser(DemUser user) {
        return userDtoMapper.updateUser(user);
    }

    /**
     * 查询所有用户
     *
     * @return 用戶集合
     */
    @Override
    public List<DemUser> selectUserAll() {
        return userDtoMapper.selectUserAll();
    }

    /**
     * 根据用戶ID查询用戶
     *
     * @param userId 用戶ID
     * @return 用户
     */
    @Override
    public DemUser selectUserById(Integer userId) {
        return userDtoMapper.selectUserById(userId);
    }

    /**
     * 根据条件查询用户列表（含分页）
     *
     * @param user 用户
     * @return 用户集合
     */
    @Override
    public List<DemUser> selectUserList(DemUser user) {
        return userDtoMapper.selectUserList(user);
    }

    /**
     * 校验用户名称是否唯一
     *
     * @param userName 用户名称
     * @return 结果
     */
    @Override
    public DemUser checkUserNameUnique(String userName) {
        return userDtoMapper.checkUserNameUnique(userName);
    }

    /**
     * 导入用户
     *
     * @param userList        用户列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新
     * @param operName        操作用户
     * @return 结果
     */
    @Override
    public String importUser(List<DemUser> userList, Boolean isUpdateSupport, String operName) {
        return null;
    }

    /**
     * 新增用户岗位
     *
     * @param user 用户
     */
    public void insertUserPost(DemUser user) {
        System.out.println("User对象的新增ID为：" + user.getUserId());
    }

    /**
     * 新增用户角色
     *
     * @param user 用户
     */
    public void insertUserRole(DemUser user) {
    }
}
